package com.ljx.lambda.lambda01;

import java.util.function.Consumer;

/**
 *  我们知道使用Lambda表达式的前提是需要有函数式接口。
 *  而Lambda使用时不关心接口名，抽象方法名，只关心抽象方法的参数列表和返回值类型。
 *  因此为了让我们使用Lambda方便，JDK提供了大量常用的函数式接口。
 *  ---无需自定义函数式接口。
 *  ---如果JDK不提供一些函数式接口，那么每个人需要自定义函数式接口，而且每个人定义的名称不一致。
 *  内置的函数式接口都在
 * java.util.function包下
 * @author LJX
 * @Description: TODO
 * @Date: 2022/11/3 15:20
 * @Version 1.0
 */
public class Test04 {
	public static void main(String[] args) {
		Consumer<int[]> consumer=arr->{
			for (int a:arr){
				System.out.println(a);
			}
		};
		fun(consumer,new int[]{12,12,12});
		fun(arr->{
			System.out.println(arr.length);
		},new int[]{1,2,3});
	}
	public static void fun(Consumer<int[]> consumer,int[] arr){
		/**
		 * 方法中有参无返回值
		 * 如果需要一个有参无返回的函数式接口，那么我们就可以使用Consumer函数式即可，无需自定义函数式接口
		 */
		consumer.accept(arr);
	}
}
